Document data entry suggestions

ABSTRACT

A document having multiple data entry areas can be presented, and a list of suggestions for a designated data entry area can be generated. Generating the list can include analyzing a first set of data previously entered into one or more data entry areas of the document other than the designated data entry area and analyzing a second set of data including data outside the first set of data. The list of suggestions can be presented without having received manual entry of data in the designated data entry area, and user input selecting one of the suggestions can be received. Data represented by the selected suggestion can be entered in the data entry area in response to receiving the user input selecting the selected suggestion.

RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.13/270,242, filed Oct. 11, 2011, which is incorporated herein byreference. If any disclosures are incorporated herein by reference andsuch incorporated disclosures conflict in part or whole with the presentdisclosure, then to the extent of conflict, and/or broader disclosure,and/or broader definition of terms, the present disclosure controls. Ifsuch incorporated disclosures conflict in part or whole with oneanother, then to the extent of conflict, the later-dated disclosurecontrols.

BACKGROUND

Data entry in computing devices can be difficult and time-consuming insome situations. For example, typing on a slate device with a virtualkeyboard (a keyboard displayed on a touch screen) can be slow andcumbersome, especially when on the go. However, some slate device userswant to be able to modify documents using these devices. Tools have beendeveloped for making data input in slate devices and other computingdevice more efficient. These features include autocorrect and textsuggestion features.

SUMMARY

Existing autocorrect and text suggestion features can involve a usertyping nearly the full word or sentence they desire into a keyboard toget a suggestion. The tools and techniques described herein relate tousing data already entered in a document for providing data entrysuggestions (referred to herein as suggestions) for a designated dataentry area in the document. A suggestion list may be displayed withouthaving received manual entry of data in the designated data entry area.As used herein, a suggestion list is a group of one or more data entrysuggestions. The group of suggestions may be formatted in any of variousdifferent ways. The suggestion list can be generated using data frommultiple different sources, such as data already entered into adesignated data entry area of a document, data entered into other areasof the document, and dictionary entries. Other data entry suggestionfeatures are also discussed below. The features may be used separatelyor in various combinations with each other.

In one embodiment, the tools and techniques can include presenting adocument having multiple data entry areas. User input can be received,where the user input is directed at a designated data entry area. Forexample, the user input may be user input selecting the designated dataentry area and/or indicating that the designated data entry area is tobe edited. A list of suggestions can be generated for the designateddata entry area. Generating the list can include analyzing datapreviously entered into one or more data entry areas of the documentother than the designated data entry area. The list of suggestions canbe presented without having received manual entry of data in thedesignated data entry area. User input selecting one of the suggestionscan be received, and data represented by the selected suggestion can beentered in the data entry area in response to receiving the user inputselecting the selected suggestion.

In another embodiment of the tools and techniques, a document havingmultiple data entry areas can be presented. A list of suggestions forselected designated data entry area can be generated. Generating thelist can include analyzing a first set of data previously entered intoone or more data entry areas of the document other than the designateddata entry area and analyzing a second set of data including dataoutside the first set of data. The list of suggestions can be presented,and user input selecting one of the suggestions can be received. Datarepresented by the selected suggestion can be entered in the data entryarea in response to receiving the user input selecting the selectedsuggestion.

This Summary is provided to introduce a selection of concepts in asimplified form. The concepts are further described below in theDetailed Description. This Summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used to limit the scope of the claimed subject matter.Similarly, the invention is not limited to implementations that addressthe particular techniques, tools, environments, disadvantages, oradvantages discussed in the Background, the Detailed Description, or theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a suitable computing environment in whichone or more of the described embodiments may be implemented.

FIG. 2 is a schematic diagram of a document data entry suggestionenvironment.

FIG. 3 is an illustration of a display that includes a display of adocument.

FIG. 4 is an illustration of the display of FIG. 3 after user inputdirected at a designated data entry area has been provided.

FIG. 5 is an illustration of the display of FIG. 3 after user input hasbeen provided to select a data entry suggestion from a data entrysuggestion list.

FIG. 6 is an illustration of another display that includes a display ofa document.

FIG. 7 is an illustration of the display of FIG. 6 after user input hasbeen received directed at a designated data entry area and indicatingthat the designated data entry area is to be edited.

FIG. 8 is an illustration of the display of FIG. 6 after user input hasbeen provided to manually enter data into the designated data entryarea.

FIG. 9 is an illustration of the display of FIG. 6 after user input hasbeen provided to manually enter additional data into the designated dataentry area.

FIG. 10 is an illustration of the display of FIG. 6 after user input isprovided to select a data entry suggestion from a list of data entrysuggestions.

FIG. 11 is a flowchart of a document data entry suggestion technique.

FIG. 12 is a flowchart of another document data entry suggestiontechnique.

FIG. 13 is a flowchart of yet another document data entry suggestiontechnique.

DETAILED DESCRIPTION

Embodiments described herein are directed to techniques and tools forimproved use of suggestion lists for data entry. Such improvements mayresult from the use of various techniques and tools separately or incombination.

Such techniques and tools may include generating suggestions from dataalready entered in other areas of a document. The underlying datastructure and/or display layout of the document can be used along withthe content of the document to generate a list of suggestions forentering in the designated data entry area. The list of suggestions maybe generated and displayed to the user without the user manuallyentering data in the data entry area. The generated list may alsoinclude suggestions from other sources such as an existingdictionary-based autocomplete feature. The suggestion list can beoffered in a variety of ways, such as leveraging and/or augmentingexisting aspects of the user interface (such as using an existingkeyboard suggestions feature from an application and/or operatingsystem).

Accordingly, the tools and techniques described herein may provide oneor more benefits such as more rapid insertion of text into a document,increasing the speed and ease with which documents can be edited, and/orimproving user efficiency when inputting data into a document. Thesubject matter defined in the appended claims is not necessarily limitedto the benefits described herein. A particular implementation of theinvention may provide all, some, or none of the benefits describedherein. Although operations for the various techniques are describedherein in a particular, sequential order for the sake of presentation,it should be understood that this manner of description encompassesrearrangements in the order of operations, unless a particular orderingis required. For example, operations described sequentially may in somecases be rearranged or performed concurrently. Moreover, for the sake ofsimplicity, flowcharts may not show the various ways in which particulartechniques can be used in conjunction with other techniques.

Techniques described herein may be used with one or more of the systemsdescribed herein and/or with one or more other systems. For example, thevarious procedures described herein may be implemented with hardware orsoftware, or a combination of both. For example, dedicated hardwareimplementations, such as application specific integrated circuits,programmable logic arrays and other hardware devices, can be constructedto implement at least a portion of one or more of the techniquesdescribed herein. Applications that may include the apparatus andsystems of various embodiments can broadly include a variety ofelectronic and computer systems. Techniques may be implemented using twoor more specific interconnected hardware modules or devices with relatedcontrol and data signals that can be communicated between and throughthe modules, or as portions of an application-specific integratedcircuit. Additionally, the techniques described herein may beimplemented by software programs executable by a computer system. As anexample, implementations can include distributed processing,component/object distributed processing, and parallel processing.Moreover, virtual computer system processing can be constructed toimplement one or more of the techniques or functionality, as describedherein.

I. Exemplary Computing Environment

FIG. 1 illustrates a generalized example of a suitable computingenvironment (100) in which one or more of the described embodiments maybe implemented. For example, one or more such computing environments canbe used as an environment for data entry suggestions. Generally, variousdifferent general purpose or special purpose computing systemconfigurations can be used. Examples of well-known computing systemconfigurations that may be suitable for use with the tools andtechniques described herein include, but are not limited to, serverfarms and server clusters, personal computers, server computers,hand-held devices (e.g., slate devices, smart phones, etc.), laptopdevices, multiprocessor systems, microprocessor-based systems,programmable consumer electronics, network PCs, minicomputers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

The computing environment (100) is not intended to suggest anylimitation as to scope of use or functionality of the invention, as thepresent invention may be implemented in diverse general-purpose orspecial-purpose computing environments.

With reference to FIG. 1, the computing environment (100) includes atleast one processing unit (110) and memory (120). In FIG. 1, this mostbasic configuration (130) is included within a dashed line. Theprocessing unit (110) executes computer-executable instructions and maybe a real or a virtual processor. In a multi-processing system, multipleprocessing units execute computer-executable instructions to increaseprocessing power. The memory (120) may be volatile memory (e.g.,registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flashmemory), or some combination of the two. The memory (120) storessoftware (180) implementing document data entry suggestions as describedherein.

Although the various blocks of FIG. 1 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clearand, metaphorically, the lines of FIG. 1 and the other figures discussedbelow would more accurately be grey and blurred. For example, one mayconsider a presentation component such as a display device to be an I/Ocomponent. Also, processors have memory. The inventors hereof recognizethat such is the nature of the art and reiterate that the diagram ofFIG. 1 is merely illustrative of an exemplary computing device that canbe used in connection with one or more embodiments of the presentinvention. Distinction is not made between such categories as“workstation,” “server,” “laptop,” “handheld device,” etc., as all arecontemplated within the scope of FIG. 1 and reference to “computer,”“computing environment,” or “computing device.”

A computing environment (100) may have additional features. In FIG. 1,the computing environment (100) includes storage (140), one or moreinput devices (150), one or more output devices (160), and one or morecommunication connections (170). An interconnection mechanism (notshown) such as a bus, controller, or network interconnects thecomponents of the computing environment (100). Typically, operatingsystem software (not shown) provides an operating environment for othersoftware executing in the computing environment (100), and coordinatesactivities of the components of the computing environment (100).

The storage (140) may be removable or non-removable, and may includecomputer-readable storage media such as magnetic disks, magnetic tapesor cassettes, CD-ROMs, CD-RWs, DVDs, or any other medium which can beused to store information and which can be accessed within the computingenvironment (100). The storage (140) stores instructions for thesoftware (180).

The input device(s) (150) may be a touch input device such as akeyboard, mouse, pen, or trackball; a voice input device; a scanningdevice; a network adapter; a CD/DVD reader; or another device thatprovides input to the computing environment (100). The output device(s)(160) may be a display, printer, speaker, CD/DVD-writer, networkadapter, or another device that provides output from the computingenvironment (100).

The communication connection(s) (170) enable communication over acommunication medium to another computing entity. Thus, the computingenvironment (100) may operate in a networked environment using logicalconnections to one or more remote computing devices, such as a personalcomputer, a server, a router, a network PC, a peer device or anothercommon network node. The communication medium conveys information suchas data or computer-executable instructions or requests in a modulateddata signal. A modulated data signal is a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media include wired or wireless techniques implementedwith an electrical, optical, RF, infrared, acoustic, or other carrier.

The tools and techniques can be described in the general context ofcomputer-readable media, which may be storage media or communicationmedia. Computer-readable storage media are any available storage mediathat can be accessed within a computing environment, but the termcomputer-readable storage media does not refer to propagated signals perse. By way of example, and not limitation, with the computingenvironment (100), computer-readable storage media include memory (120),storage (140), and combinations of the above.

The tools and techniques can be described in the general context ofcomputer-executable instructions, such as those included in programmodules, being executed in a computing environment on a target real orvirtual processor. Generally, program modules include routines,programs, libraries, objects, classes, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. The functionality of the program modules may be combined or splitbetween program modules as desired in various embodiments.Computer-executable instructions for program modules may be executedwithin a local or distributed computing environment. In a distributedcomputing environment, program modules may be located in both local andremote computer storage media.

For the sake of presentation, the detailed description uses terms like“determine,” “choose,” “adjust,” and “operate” to describe computeroperations in a computing environment. These and other similar terms arehigh-level abstractions for operations performed by a computer, andshould not be confused with acts performed by a human being, unlessperformance of an act by a human being (such as a “user”) is explicitlynoted. The actual computer operations corresponding to these terms varydepending on the implementation.

II. Document Data Entry Suggestion System and Environment

FIG. 2 is a schematic diagram of a document data entry suggestionenvironment (200) in conjunction with which one or more of the describedembodiments may be implemented. The environment (200) can include adocument data entry device (210), which could be any of variousdifferent types of device, such as a slate device, a smart phone, alaptop computer, a desktop computer, etc. The document data entry device(210) can include a display and one or more user input devices, as wellas one or more of the other features discussed above with reference toFIG. 1. For example, the document data entry device (210) may include atouch screen for displaying and for receiving user input in the form oftouch gestures. The document data entry device (210) can host apresentation component (230), such as a rendering engine for renderingor displaying information on a display (232), such as a touch screen.For example, the presentation component (230) can render a document(240) on the display (232).

The document data entry device (210) can also include a list generationcomponent (250) that can analyze the document (240). For example, thelist generation component (250) may analyze the structure of thedocument (240), the layout of a display of the document (240) by thepresentation component (230), and the content of the document (240). Thelist generation component (250) may also analyze other information, suchas entries in a dictionary (275) and user input (270) (e.g., textentered by user input (270)). Using the results of such analysis, thelist generation component (250) can generate a list of suggestions (280)for data entry to be presented by the presentation component (230). Forexample, the presentation component (230) may present the list ofsuggestions (280) along with the document (240) on the display (232)when user input (270) is entering text in the document (240).

As noted above, the list generation component (250) can leverage thestructure of the document (240) to determine suitable contentsuggestions that can be offered to the user in the list of suggestions(280). For example, in a grid-based application such as a spreadsheet ordatabase application, the structure of rows and/or columns in the gridcan be used to define suggestions. These may be the rows/columns wheretext is being entered, or even rows or columns elsewhere in the grid.For example, if the user is working in a table and has entered multiplerows of information above, this information can be used by the listgeneration component (250). In one specific example, if a customerenters “True” or “False” in the same column in each of the row entriesabove, it may be assumed that there is a high likelihood that thecustomer will enter “True” or “False” in the corresponding column of therow being edited. Accordingly, the list of suggestions (280) can include“True” and “False.” This approach may also be used with documents thatdo not have a grid structure. For example, it could be used in a formwhere the same set of entries was entered respectively into a fieldpreviously. Besides just including in the list of suggestions (280) textthat is entered elsewhere in the document (240), the list generationcomponent (250) may include other suggestions. For example, the listgeneration component (250) may make suggestions based on recognizedpatterns. For example, if a user had entered “Monday” and “Tuesday” intwo previous entries, the list of suggestions could include “Wednesday”as the first suggestion in the list of suggestions (280), followed byother days of the week. The same could be done for number sequences(e.g., if 1, 2, 3, and 4 were entered, the number 5 could be included asa suggestion), or other patterns. Additionally, the list generationcomponent (250) could include entries from a dictionary (275) in thelist of suggestions (280). For example, if some text has already beenentered in a designated data entry area of the document (240), the listof suggestions (280) could include spelling predictions from thedictionary (275), along with suggestions from the analysis of dataalready entered elsewhere in the document (240).

The suggestions can be offered in a familiar and user friendly way whenthe user input (270) indicates the document (240) is to be edited. Forexample, when the user selects the cell or invokes the keyboard, afloating piece of user interface can be surfaced on the display (232) todisplay the list of suggestions (280). The user can the quickly pick asuggestion through user input (270) (e.g., with a touch gesture),possibly without having to type data into a keyboard. Building on this,these suggestions could also be used to augment and enhance existingautocomplete/text entry features, which may already be familiar to usersof the document data entry device (210).

Some specific examples of user interface features for the document dataentry suggestions will now be discussed with reference to FIGS. 3-10.Referring now to FIG. 3, a display (300) is illustrated. The display(300) can include a document display (320), which can display adocument. In the illustrated example, of FIG. 3, the document display(320) is laid out in the form of a displayed grid (322) with columns androws of data entry areas. Referring to FIG. 4, user input directed at adesignated data entry area (330) has been provided. This could be doneusing any of various different user input devices, such as making atouch gesture on a touch screen at the designated data entry area (330),using a mouse to make a selection at the designated data entry area(330), using a touch pad to make a selection at the designated dataentry area (330), etc. In response to the user input, the designateddata entry area (330) may be highlighted. Also, a keyboard display (340)can be displayed if the display (300) is a touch screen. Additionally, asuggestion list (350) can be displayed. In the illustrated example, thesuggestion list (350) is displayed as a floating menu proximal to thedesignated data entry area. In the example, the suggestion list includesthe suggestions “CS”, “MATH”, and “PHYSICS”—all from data that had beenentered in other rows of the same column as the designated data entryarea (330). User input can be provided to select one of the suggestionsof the suggestion list (350). For example, if user input is provided toselect “CS”, then “CS” can be entered in the designated data entry area,as illustrated in FIG. 5. As is also illustrated in FIG. 5, this userinput selecting one of the suggestions can also result in the suggestionlist (350) and the keyboard display (340) being removed from the display(300).

Referring now to FIGS. 6-10, another example of user interface featuresfor document data entry suggestions will be discussed. Referring to FIG.6, a display (600) is illustrated including a document display (620) inthe form of a grid (622), similar to the display (300) of FIG. 3 above.Referring to FIG. 7, a data entry suggestions list feature will bediscussed. This feature can build on the correction/text completionfeatures offered on a virtual keyboard. Today, many phones and slatesalready offer text suggestions when typing, frequently showingsignificant parts of the words before a suggestion can be selected. Thesame user interface features can be used, but suggestions can be offeredbefore typing begins. Additionally, related information elsewhere in thedocument itself can be used to generate the suggestions.

Referring still to FIG. 7, user input directed at a designated dataentry area (630) and indicating that the user wants to edit the dataentry area (630) can result in launching an on-screen keyboard display(640) and displaying a suggestion list (650) without further user input.In the illustrated example of FIG. 7, the suggestion list (650) isdisplayed proximal to the keyboard display (640) (just above thekeyboard display (640)). At this point, a user can select one of thesuggestions on the suggestion list (650) to enter the data value fromthe selected suggestion into the designated data entry area (630). Thisapproach can allow for rapid insertion of new information into thedocument, especially when adding information to a form or spreadsheet,potentially without any input on the keyboard. As is illustrated in FIG.7, all the suggestions in the suggestion list (650) may not fit into theallotted display area for the suggestion list (650). Accordingly, thesuggestion list (650) can be scrolled using existing scrollingtechniques (e.g., selecting an arrow button, dragging using a touchscreen, etc.). Alternatively, some other technique can be used fordisplaying suggestions that did not initially fit into the allotteddisplay area, such as some other technique used by an existing autocomplete feature.

Referring now FIG. 8, user input may be provided to manually enter datainto the designated data entry area (630). In the example of FIG. 8, theletter “M” has been typed using the keyboard display (640). In responseto that user input, the letter “M” can be entered in the designated dataentry area (630). Also in response to that user input, the suggestionlist can be refined by displaying only suggestions from the suggestionlist (650) that start with the letter “M”. Additionally, when text istyped into the designated data entry area (630), the suggestion list(650) may include suggestions from analyzing other areas of thedocument, and it may also include suggestions from a dictionary (e.g.,spelling predictions). For example, as illustrated in FIG. 8, thesuggestion list includes the term “MATH” (entered in another row of thesame column in the document display (620)), the term “MECHANICALENGINEERING” (which could have been found in another list of majors inanother column of the document or even from some other list of majors),and the term “ME” (which could refer to a common word starting with theletter “M” obtained from a spelling prediction dictionary). Thesuggestions in the suggestion list (650) could be ordered using variousdifferent types of information, such as the same types of informationthat are used to obtain the suggestions. For example, in FIG. 8, theterm “MATH” suggestion can be listed first because that suggestion comesfrom the same column in the grid (622). At this point, user input couldbe provided to select one of the suggestions of the suggestion list(650) to enter the corresponding data into the designated data entryarea (630).

User input can be provided to manually enter additional data into thedesignated data entry area (630). For example, as illustrated in FIG. 9,the additional letter “A” has been typed, so that the designated dataentry area now includes “MA”. This can result in just a single matchingsuggestion (“MATH”) being recommended in the suggestion list (650). Inthis case, the suggestion could be directly selected, or the “ENTER”button of the keyboard display (640) could be selected to select thatsingle suggestion (i.e., the “ENTER” button is overridden allowingselection of that button to apply the suggestion). Referring now to FIG.10, selecting the suggestion results in the data from the selectedsuggestion (the text “MATH”) being entered in the designated data entryarea. The selection of the suggestion can also result in the suggestionlist (650) and the keyboard display (640) being removed from the display(600).

III. Document Data Entry Suggestion Techniques

Several document data entry suggestion techniques will now be discussed.Each of these techniques can be performed in a computing environment.For example, each technique may be performed in a computer system thatincludes at least one processor and memory including instructions storedthereon that when executed by at least one processor cause at least oneprocessor to perform the technique (memory stores instructions (e.g.,object code), and when processor(s) execute(s) those instructions,processor(s) perform(s) the technique). Similarly, one or morecomputer-readable storage media may have computer-executableinstructions embodied thereon that, when executed by at least oneprocessor, cause at least one processor to perform the technique.

Referring to FIG. 11, a document data entry suggestion technique will bedescribed. The technique can include presenting (1110) a document havingmultiple data entry areas. User input can be received (1120), where theuser input is directed at a designated one of the data entry areas. Theuser input may also indicate that the designated data entry area is tobe edited. A list of suggestions for the designated data entry area canbe generated (1130). Generating (1130) the list can include analyzingdata previously entered into one or more data entry areas of thedocument other than the designated data entry area. This may includeanalyzing data in a database that the document can display. For example,the document may be a form that can be used for editing underlying datain a database. This analysis can include analyzing a structure of thedocument, and/or analyzing a layout of a display of the document. Theanalysis may include recognizing one or more patterns in the datapreviously entered into the one or more data entry areas of thedocument. Generating (1130) the list of suggestions can include usingthe recognized pattern(s) to predict one or more suggestions andincluding the one or more predicted suggestions in the list ofsuggestions. For example, the predicted suggestions may be suggestionsof data that has not yet been entered in the document. Generating (1130)the list of suggestions may also include analyzing one or moredictionaries outside the document. Generating (1130) the list ofsuggestions may include meshing one or more suggestions from analyzingthe one or more dictionaries outside the document with one or moresuggestions from analyzing data previously entered into one or more dataentry areas of the document.

The list of suggestions can be presented (1140) without having receivedmanual entry of data in the designated data entry area. For example, thelist of suggestions may be displayed on a display device, such as on atouch screen. Presenting (1140) the list of suggestions can includedisplaying the list of suggestions as a floating menu proximal to thedesignated data entry area. Presenting (1140) the list of suggestionscan include displaying the list of suggestions proximal to a displayedkeyboard on a touch screen, or displaying the list of suggestions insome other area of a screen and/or using some other technique. Forexample, the list may be displayed in some other standard place where anapplication and/or operating system would already show suggestions suchas auto corrections/auto complete suggestions.

A manual entry of text into the designated data entry area can bereceived, and the list of suggestions can be refined in response toreceiving the manual entry of text. For example, the list of suggestionscan be refined to remove suggestions that do not match themanually-entered text.

User input selecting one of the suggestions can be received (1150). Datarepresented by the selected suggestion can be entered (1160) in responseto receiving the user input selecting the selected suggestion.

Referring to FIG. 12, another document data entry suggestion techniquewill be described. The technique can include presenting (1210) adocument having multiple data entry areas. User input can be received(1220), where the user input is directed at a designated one of the dataentry areas. A list of suggestions for the designated data entry areacan be generated (1230). Generating (1230) the list can includeanalyzing (1232) a first set of data previously entered into one or moredata entry areas of the document other than the designated data entryarea, and analyzing (1234) a second set of data including data outsidethe first set of data. Analyzing (1232) data previously entered into oneor more data entry areas of the document includes analyzing a structureselected from a group consisting of a structure of the document, alayout of a display of the document, and combinations thereof. Thesecond set of data can include data manually entered in the designateddata entry area and/or one or more entries in a dictionary. Also, thetechnique may further include receiving a manual entry of data into thedesignated data entry area, and refining the list of suggestions inresponse to receiving the manual entry of data.

The list of suggestions can be presented (1240). The list of suggestionsmay be presented (1240) without having received manual entry of data inthe designated data entry area. Also, generating the list of suggestionsand presenting the list of suggestions can be done in response toreceiving the user input directed at the designated data entry area.

User input selecting one of the suggestions can be received (1250). Datarepresented by the selected suggestion can be entered (1260) in the dataentry area in response to receiving the user input selecting theselected suggestion.

Referring to FIG. 13, yet another document data entry suggestiontechnique will be described. The technique can include presenting(1310), where the presented document can include a grid having multipledata entry areas. User input can be received (1320), where the userinput is directed at a designated one of the data entry areas. Inresponse to receiving (1320) the user input, a list of suggestions canbe generated (1330) for the designated data entry area. Generating(1330) the list can include analyzing (1332) a first set of datapreviously entered into one or more data entry areas of the documentother than the designated data entry area. Analyzing (1332) datapreviously entered into one or more data entry areas of the document caninclude analyzing a structure selected from a group consisting of astructure of the document, a layout of a display of the document, andcombinations thereof.

Generating (1330) the list can also include analyzing (1334) a secondset of data that includes data manually entered in the designated dataentry area and one or more entries in a dictionary. In response toreceiving (1320) the user input directed at the designated data entryarea, the list of suggestions can be presented (1340) without havingreceived manual entry of data in the designated data entry area.

A manual entry of data can be received (1342) into the designated dataentry area. The list of suggestions can be refined (1344) in response toreceiving the manual entry of data. User input selecting one of thesuggestions can be received (1350), and data represented by the selectedsuggestion can be entered (1360) in the data entry area in response toreceiving the user input selecting the selected suggestion.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

I/We claim:
 1. A computer-implemented method, comprising: providing adocument having multiple data entry areas; receiving user inputselecting a designated data entry area of the multiple data entry areas;generating a list of one or more suggestions for the designated dataentry area, generating the list comprising analyzing data previouslyentered into one or more data entry areas of the document other than thedesignated data entry area; providing the list of one or moresuggestions automatically in response to the receiving of the user inputselecting the designated data entry area, the providing of the listbeing performed at a time when manual entry of data has not beenreceived in the designated data entry area; receiving user inputselecting one of the one or more suggestions; and entering datarepresented by the selected suggestion in the designated data entry areain response to receiving the user input selecting the selectedsuggestion.
 2. The method of claim 1, wherein analyzing data previouslyentered into one or more data entry areas of the document comprisesanalyzing a structure of the document.
 3. The method of claim 1, whereinanalyzing data previously entered into one or more data entry areas ofthe document comprises analyzing a layout of a display of the document.4. The method of claim 1, wherein analyzing data previously entered intoone or more data entry areas of the document comprises recognizing oneor more patterns in the data previously entered into the one or moredata entry areas of the document.
 5. The method of claim 4, whereingenerating the list of one or more suggestions comprises using the oneor more recognized patterns to predict one or more suggestions andincluding the one or more predicted suggestions in the list of one ormore suggestions.
 6. The method of claim 1, wherein generating the listof one or more suggestions further comprises analyzing one or moredictionaries outside the document.
 7. The method of claim 6, whereingenerating the list of one or more suggestions further comprises:including in the list one or more suggestions from analyzing the one ormore dictionaries outside the document; and including in the list one ormore suggestions from analyzing data previously entered into one or moredata entry areas of the document.
 8. The method of claim 1, whereinproviding the list of one or more suggestions comprises displaying thelist of one or more suggestions as a floating menu proximal to thedesignated data entry area.
 9. The method of claim 1, wherein providingthe list of one or more suggestions comprises displaying the list of oneor more suggestions on a touch screen.
 10. The method of claim 1,wherein providing the list of one or more suggestions comprisesdisplaying the list of one or more suggestions proximal to a displayedkeyboard on a touch screen.
 11. The method of claim 1, furthercomprising receiving a manual entry of text into the designated dataentry area, and refining the list of one or more suggestions in responseto receiving the manual entry of text.
 12. The method of claim 1,wherein the list of one or more suggestions is a list of multiplesuggestions.
 13. A computer system comprising: at least one processor;and memory comprising instructions stored thereon that when executed byat least one processor cause at least one processor to perform actscomprising: displaying a document having multiple data entry areas;receiving a user input action selecting a designated data entry area ofthe multiple data entry areas; generating a list of one or moresuggestions for the designated data entry area, generating the listcomprising analyzing data previously entered into one or more data entryareas of the document other than the designated data entry area;displaying the list of one or more suggestions automatically in responseto the receiving of the user input action selecting the designated dataentry area, the displaying of the list being performed at a time whenmanual entry of data has not been received in the designated data entryarea; receiving user input selecting one of the one or more suggestions;and entering data represented by the selected suggestion in thedesignated data entry area in response to receiving the user inputselecting the selected suggestion.
 14. The computer system of claim 13,wherein displaying the list of one or more suggestions comprisesdisplaying the list of one or more suggestions proximal to a displayedkeyboard on a touch screen.
 15. The computer system of claim 13, whereinthe document comprises a grid and the data entry areas of the documentare data entry areas in the grid.
 16. The computer system of claim 13,wherein generating the list of one or more suggestions further comprisesanalyzing one or more dictionaries outside the document.
 17. Thecomputer system of claim 13, wherein analyzing data previously enteredinto one or more data entry areas of the document comprises analyzing astructure selected from a group consisting of a structure of thedocument, a layout of a display of the document, and combinationsthereof.
 18. A computer system comprising: at least one processor; andmemory comprising instructions stored thereon that when executed by atleast one processor cause at least one processor to perform actscomprising: displaying a document comprising multiple data entry areas;receiving user input directed at a designated data entry area of thedata entry areas; generating a list of one or more suggestions for thedesignated data entry area, generating the list comprising analyzing aset of data previously entered into one or more data entry areas of thegrid other than the designated data entry area, analyzing the set ofdata comprising identifying a pattern spanning multiple entries in theset of data and including in the list at least one suggestion that fitsthe identified pattern, the at least one suggestion that fits thepattern not having been included in the data entry areas prior to thereceipt of the user input directed at the designated data entry area; inresponse to receiving the user input directed at the designated dataentry area, displaying the list of one or more suggestions; receivinguser input selecting one of the one or more suggestions; and enteringdata represented by the selected suggestion in the designated data entryarea in response to receiving the user input selecting the selectedsuggestion.
 19. The computer system of claim 18, wherein the patterncomprises multiple entries including terms that are in a list of relatedterms, and wherein identifying the pattern comprises accessing the listof related terms.
 20. The computer system of claim 18, wherein theidentified pattern is an ordered sequential pattern, and wherein the atleast one suggestion that fits the pattern continues the orderedsequential pattern.